Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO


■カレンダ時計

解説  o カレンダ時計はバッテリバックアップされているため、電源をOFFにした
	状態でも計時動作を行っている。
      o カレンダ時計へのアクセスは、BIOSを利用するべきである。やむを得ない
	場合以外、直接I/Oアクセスすることは避けた方が良い。
      o 使用されているカレンダ時計LSIは機種により異なる。
	------------+---------------------------------------------------------
	カレンダ時計|機種
	------------+---------------------------------------------------------
	μPD1990A   |PC-9801初代・E・F・M・U・VF・VM2・UV2,PC-98XA,PC-98LT
	------------+---------------------------------------------------------
	μPD4990A   |PC-9801VX2〜PC-9801NX/C,PC-9821Ce・Af
	            |PC-9801NS/A,NL/R,PC-9821Bf・Cs2・Ce2の一部ロット
	------------+---------------------------------------------------------
	μPD4991    |PC-98HA
	------------+---------------------------------------------------------
	μPD4993    |PC-9801P・BA2・BS2・BX2,PC-9821Ne・Ap2・As2・Bp・Bs・Be・Tsの
	            |一部ロット
	------------+---------------------------------------------------------
	μPD4993A   |PC-9801P・NS/A・NL/R・BA2・BS2・BX2,PC-9821Ne・Ap2・As2・Bp・Bs・
	            |Be・Bf・Ts・Cs2・Ce2の一部ロット
	            |PC-9821An・Ap3・As3・Xt・Xa・Xf・Xn・Xp・Xs・Xe・Cf・Cx・Cb・
	            |Xa16・Xa13・Xa12・Xa10・Xa9・Xa7・Xa7e・Xt16・Xt13・St15・St20・Ra20・
		    |Xv13・Xb10・Xc10・Xe10・V20・V16・V13・V12・V10・V7・
		    |Cx2・Cb2・Cx3・Cb3・
		    |Np・Ns・Ne2・Nd・Es・Ne3・Nd2・Nf・Nm・Ld・Lt・Ld2・Nx・Na12・Na9・Na7・
		    |Nb7・La10・La7
	            |PC-9821BA3・BX3・BX4
	------------+---------------------------------------------------------
	なし        |DB-P1
	------------+---------------------------------------------------------
      u μPD4993を搭載した本体は、電源OFFの状態で日付が変わったとき、年の
	更新や閏年のときの2月29日の設定が自動的に行われない。
      u μPD4993搭載機種の上記不具合を修正するために、MS-DOS 5.0A以前のバー
	ジョンではIO.SYSに対するパッチがNECから公開されている。また、MS-DOS
	6.2以降、およびWindows95ではBCKWHEAT.SYSを組み込むことによって修正
	される。
      o カレンダ時計割り込み搭載機種ではμPD4993Aのパルス出力によって、CPUに
	対してINT 17h(IRQ15)割り込みを発生させることができる。
      o カレンダ時計割り込み搭載機種では、MS-DOS環境でHRTIMER.SYSというデバ
	イスドライバを組み込むことでDOSファンクションで1/100秒単位の時刻を
	取得することが可能である。
関連	I/O 000Ah bit 7
	INT 17h


I/O	0020h
名前	カレンダ時計
対象	全機種(PC-98HA,DB-P1を除く)
チップ	μPD1990A, μPD4990A, μPD4993, μPD4993A
機能
	-----------+----+---+--------------------------------------------------
	I/Oアドレス|幅  |R/W|内容
	-----------+----+---+--------------------------------------------------
	0020h      |BYTE| R |μPD1990A,μPD4990Aは未使用。
	           |    |   |μPD4993(A)搭載機では、I/O 0022h bit 4=1のとき
	           |    |   |使用される。詳細不明。
	0020h      |BYTE| W |セットレジスタ
	           |    |   |bit 7,6: 00b
	           |    |   |bit 5: データインプット
	           |    |   |bit 4: クロック
	           |    |   |bit 3: ストローブ
	           |    |   |bit 2〜0: C2〜C0 コマンドコード
	           |    |   |	111b= 拡張モードコマンド (*1)
	           |    |   |	110b= TP=64Hzセット (*1)
	           |    |   |	101b= TP=256Hzセット (*1)
	           |    |   |	100b= TP=2048Hzセット (*1)
	           |    |   |	011b= タイムリード
	           |    |   |	010b= タイムセット&カウンタホールド
	           |    |   |   001b= レジスタシフト
	           |    |   |	000b= レジスタホールド
	           |    |   |	*1:μPD1990Aはサポートしない
	-----------+----+---+--------------------------------------------------
解説  o カレンダ時計ICのデータアウト端子はシステムポートB0に接続されている。
      o μPD1990Aには年を扱う機能がないため、μPD1990A搭載機では、年の値は
	メモリスイッチ8(A000:3FFEh,E000:3FFEh)に格納する。このため、越年や
	うるう年の処理は自動的に行われない。
関連	I/O 0033h bit0
	I/O 8E1Eh■[PC-9801P]
	A000:3FFEh■[PC-9801初代・E・F・M・U・VM2・VF・UV2]
	INT 1Ch - Function 00h
	INT 1Ch - Function 01h


I/O	0022h
名前	カレンダ時計制御
	Undocumented
対象	μPD4993(A)搭載機
チップ	μPD4993(A)
機能
	-----------+----+---+--------------------------------------------------
	I/Oアドレス|幅  |R/W|内容
	-----------+----+---+--------------------------------------------------
	0022h      |BYTE|R/W|bit 4: μPD4993(A)モード設定
	           |    |   |    1= μPD4993拡張モード
	           |    |   |    0= μPD4990互換モード
	-----------+----+---+--------------------------------------------------
解説  o μPD4993(A)の拡張機能を有効/無効にするための制御用と考えられる。bit 4=1
	にすると、通常の方法ではカレンダ時計LSIにアクセスできなくなる。
関連	I/O 0020h


I/O	0022h,0023h
名前	カレンダ時計
	Undocumented
対象	PC-98HA
チップ	μPD4991
機能
	-----------+----+---+--------------------------------------------------
	I/Oアドレス|幅  |R/W|内容
	-----------+----+---+--------------------------------------------------
	0022h      |BYTE| W |アドレス指定
	           |    |   |   bit 7〜4: 未使用(0を指定)
	           |    |   |   bit 3〜0: A3〜A0 アドレス
	0023h      |BYTE|R/W|データ入出力
	           |    |   |   bit 7〜4: 未使用(Write時は0を指定)
	           |    |   |   bit 3〜0: D3〜D0 入出力データ
	-----------+----+---+--------------------------------------------------
解説  o PC-98HAでは、アラーム機能を実現するため、μPD4991が採用されている。
      u	μPD4991は、4ビットのアドレス線と4ビットのデータ線を利用してCPUとの
	I/Oを行う。PC-98HAでは、I/O 0022hにアドレスを出力したあと、I/O 0023hで
	データの入出力を行うように回路が構成されている。
      o μPD4991の詳細は、メーカ発行のデータシートを参照。
関連	INT 1Ch - Function 00h
	INT 1Ch - Function 01h
	INT 1Ch - Function 07h
	INT 1Ch - Function 08h
	INT 1Ch - Function 09h


I/O	A98Eh,B98Eh
名前	カレンダ時計
	Undocumented
対象	PC-9801P
チップ	μPD4991
機能	
	-----------+----+---+--------------------------------------------------
	I/Oアドレス|幅  |R/W|内容
	-----------+----+---+--------------------------------------------------
	A98Eh      |BYTE| W |アドレス指定
	           |    |   |   bit 7〜4: 未使用(0を指定)
	           |    |   |   bit 3〜0: A3〜A0 アドレス
	B98Eh      |BYTE|R/W|データ入出力
	           |    |   |   bit 7〜4: 未使用(Write時は0を指定)
	           |    |   |   bit 3〜0: D3〜D0 入出力データ
	-----------+----+---+--------------------------------------------------
解説  o PC-9801Pでは、ウェイクアップ機能を実現するためにμPD4991が追加搭載
	可能なように設計されている(ただし、実際に出荷された製品では、ボード
	上にプリントパターンは残されているが、μPD4991は実装されていない。BIOS
	のサポートルーチンは残されているが、ハードウェアがないためこの機能は
	働かない)。
      u	μPD4991は、4ビットのアドレス線と4ビットのデータ線を利用してCPUとの
	I/Oを行う。PC-9801Pでは、I/O A98Ehにアドレスを出力したあと、I/O B98Ehで
	データの入出力を行うように回路が構成されている。
      o μPD4991の詳細は、メーカ発行のデータシートを参照。
関連	INT 1Fh - Function 9A12〜9A16h



I/O	0128h
対象	カレンダ時計割り込み搭載機種
機能
	[READ/WRITE]
	bit 7〜0: 詳細不明
		80h= 
		81h= 
解説  o カレンダ時計ICのパルス出力割り込みを制御する。
      o 読み出しによって割り込み要求を下げる。
      o 詳細不明
関連	INT 17h
	INT 1Ch - Function 80h,81h
	INT 1Fh - Function 8Fh
	I/O 000Ah bit 7
	0000:04F1〜04F3h